<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>PL/pgSQL</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/PL%2FpgSQL"> <link href="../mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="../mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="../mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="../mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="../mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="../mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="../mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="../mw/noscript.css">
<link rel="stylesheet" type="text/css" href="../footer.css">
<link rel="stylesheet" type="text/css" href="../vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-PL_pgSQL rootpage-PL_pgSQL skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">PL/pgSQL</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1295905060">
/* start https://en.wikipedia.org/ */
.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}
/* end https://en.wikipedia.org/ */
</style><table class="infobox vevent"><tbody><tr><th colspan="2" class="infobox-above" style="background-color:#e0e0e0;">PL/pgSQL</th></tr><tr><td colspan="2" class="infobox-image"><span typeof="mw:File"></span></td></tr><tr><th scope="row" class="infobox-label"><a href="../Software_design" title="Software design">Designed by</a></th><td class="infobox-data">Jan Wieck</td></tr><tr><th scope="row" class="infobox-label"><a href="../Software_developer" class="mw-redirect" title="Software developer">Developer</a></th><td class="infobox-data organiser">PostgreSQL Global Development Group</td></tr><tr><th scope="row" class="infobox-label">First appeared</th><td class="infobox-data">October 30, 1998<span style="display:none"> (<span class="bday dtstart published updated">1998-10-30</span>)</span></td></tr><tr><th scope="row" class="infobox-label">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/static/plpgsql.html">www<wbr>.postgresql<wbr>.org<wbr>/docs<wbr>/current<wbr>/static<wbr>/plpgsql<wbr>.html</a></span></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #EEEEEE;">Influenced by</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="../PL/SQL" title="PL/SQL">PL/SQL</a>, <a href="../Ada_(programming_language)" title="Ada (programming language)">Ada</a></td></tr></tbody></table>
<p><b>PL/pgSQL</b> (<b>Procedural Language/PostgreSQL</b>) is a <a href="../Procedural_programming" title="Procedural programming">procedural</a> <a href="../Programming_language" title="Programming language">programming language</a> supported by the <a href="../PostgreSQL" title="PostgreSQL">PostgreSQL</a> <a href="../ORDBMS" class="mw-redirect" title="ORDBMS">ORDBMS</a>. It closely resembles <a href="../Oracle_Database" title="Oracle Database">Oracle</a>'s <a href="../PL/SQL" title="PL/SQL">PL/SQL</a> language. Implemented by Jan Wieck, PL/pgSQL first appeared with PostgreSQL 6.4, released on October 30, 1998.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> Version 9 also implements some ISO <a href="../SQL/PSM" title="SQL/PSM">SQL/PSM</a> features, like overloading of SQL-invoked functions and procedures.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>PL/pgSQL, as a fully featured programming language, allows much more procedural control than <a href="../SQL" title="SQL">SQL</a>, including the ability to use loops and other control structures. SQL statements and <a href="../Database_trigger" title="Database trigger">triggers</a> can call functions created in the PL/pgSQL language.
</p><p>The design of PL/pgSQL aimed to allow PostgreSQL users to perform more complex operations and computations than SQL, while providing ease of use. The language is able to be defined as trusted by the server.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>PL/pgSQL is one of the programming languages included in the standard PostgreSQL distribution,<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> the others being <a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/static/pltcl.html">PL/Tcl</a>, PL/Perl<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> and PL/Python.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> In addition, many others are available from third parties, including PL/Java,<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> PL/pgPSM,<sup id="cite_ref-PSM_8-0" class="reference"><a href="#cite_note-PSM-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> PL/php,<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> PL/R,<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> PL/Ruby,<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>
<a rel="nofollow" class="external text" href="https://github.com/petere/plsh">PL/sh</a>,
<a rel="nofollow" class="external text" href="https://github.com/pllua/pllua">PL/Lua</a>, Postmodern<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> (based on <a href="../Common_Lisp" title="Common Lisp">Common Lisp</a>) and <a rel="nofollow" class="external text" href="https://pgxn.org/dist/plv8/doc/plv8.html">PL/v8</a>. PostgreSQL uses <a href="../GNU_bison" class="mw-redirect" title="GNU bison">Bison</a> as its parser,<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
making it easy to port many <a href="../Open-source_model" class="mw-redirect" title="Open-source model">open-source</a> languages, as well as to <a href="../Code_reuse" title="Code reuse">reuse code</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Comparing_with_PSM">Comparing with PSM</h2></div>
<p>The <a href="../SQL/PSM" title="SQL/PSM">SQL/PSM</a> language is specified by an ISO standard, but is also inspired by Oracle's PL/SQL and PL/pgPL/SQL, so there are few differences. The PL/pgPSM contributed module implements the standard. The main features of PSM that differ from PL/pgSQL:<sup id="cite_ref-PSM_8-1" class="reference"><a href="#cite_note-PSM-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-proposal_14-0" class="reference"><a href="#cite_note-proposal-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>Exception handlers are subroutines (continue handlers);</li>
<li>Warnings can be handled as an exception;</li>
<li>Declaration of variables should be based on SQL query results.</li></ul>
<p>All three languages (Oracle PL/SQL,<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> PostgreSQL PL/pgSQL and ISO SQL/PSM<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>) were heavily influenced by the <a href="../Ada_(programming_language)" title="Ada (programming language)">Ada programming language</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Example">Example</h2></div><p>
The following example is a function that computes the sales tax of a given subtotal:</p><div class="mw-highlight mw-highlight-lang-plpgsql mw-content-ltr" dir="ltr"><pre><span class="k">CREATE</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span><span class="n">sales_tax</span><span class="p">(</span><span class="n">subtotal</span><span class="w"> </span><span class="nb">real</span><span class="p">)</span><span class="w"> </span><span class="k">RETURNS</span><span class="w"> </span><span class="nb">real</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="s">$$</span>
<span class="k">BEGIN</span>
<span class="w"> </span><span class="k">RETURN</span><span class="w"> </span><span class="n">subtotal</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">0.06</span><span class="p">;</span>
<span class="k">END</span><span class="p">;</span>
<span class="s">$$</span><span class="w"> </span><span class="k">LANGUAGE</span><span class="w"> </span><span class="n">plpgsql</span><span class="p">;</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("../mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("../mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("../mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("../mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/static/release-6-4.html">"PostgreSQL Documentation, Appendix E: Release Notes, Release 6.4"</a>. PostgreSQL Global Development Group. January 2012.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/9.0/static/features-sql-standard.html">"feature T322"</a>, <i>SQL standard features</i> (9 ed.), PostgreSQL</cite>.</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/static/plpgsql.html">"PL/pgSQL – SQL Procedural Language"</a>. PostgreSQL<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-11-15</span></span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/static/xplang.html">"Procedural Languages"</a>. 9 May 2024.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/static/plperl.html">"PL/Perl"</a>, <i>Docs</i> (current ed.), PostgreSQL</cite>.</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/static/plpython.html">"PL/Python"</a>, <i>Docs</i> (current ed.), PostgreSQL</cite>.</span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://tada.github.io/pljava/">"PL/Java"</a>, <i>Gborg</i> (project), PostgreSQL</cite>.</span>
</li>
<li id="cite_note-PSM-8"><span class="mw-cite-backlink">^ <a href="#cite_ref-PSM_8-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-PSM_8-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://postgres.cz/wiki/SQL/PSM_Manual"><i>SQL/PSM</i></a> (manual), PostgreSQL, 20 May 2008</cite>.</span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://public.commandprompt.com/projects/plphp/">"PL/PHP"</a>, <i>Community</i>, Command prompt</cite>.</span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite id="CITEREFConway" class="citation cs2">Conway, Joe, <a rel="nofollow" class="external text" href="https://web.archive.org/web/20140619175406/http://www.joeconway.com/plr/"><i>PL/R</i></a>, archived from <a rel="nofollow" class="external text" href="http://www.joeconway.com/plr/">the original</a> on 2014-06-19<span class="reference-accessdate">, retrieved <span class="nowrap">2005-02-25</span></span></cite>.</span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://github.com/knu/postgresql-plruby"><i>PL/Ruby</i></a> (project), Ruby lang, 2018-11-23</cite>.</span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite id="CITEREFHaverbeke2024" class="citation cs2">Haverbeke, Marijn (2024-05-27), <a rel="nofollow" class="external text" href="https://github.com/marijnh/Postmodern"><i>marijnh/Postmodern</i></a><span class="reference-accessdate">, retrieved <span class="nowrap">2024-06-01</span></span></cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text">
<cite class="citation cs2"><a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/9.0/static/parser-stage.html">"Parser stage"</a>, <i>Docs</i> (9 ed.), PostgreSQL</cite></span>
</li>
<li id="cite_note-proposal-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-proposal_14-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFStehule" class="citation cs2">Stehule, P, <a rel="nofollow" class="external text" href="https://www.postgresql.org/message-id/CAFj8pRDWFdcjNSnwQB_3j1-rMO6b8=TmLTNBvDCSpRrOW2Dfeg@mail.gmail.com">"Proposal: PL/pgPSM for pg9.3"</a>, <i>Hackers</i> (mailing list), PostgreSQL</cite>.</span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite class="citation cs2"><a rel="nofollow" class="external text" href="http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/limits.htm#LNPLS018">"C. PL/SQL Program Limits"</a>, <i>PL/SQL Language Reference</i>, Database Online Documentation (11g Release 1 (11.1) ed.), Oracle, p. 87, <q>PL/SQL is based on the programming language Ada.</q></cite></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><cite class="citation cs2">"1", <a rel="nofollow" class="external text" href="http://cdn.oreillystatic.com/en/assets/1/event/36/Stored%2520Procedures%2520-%2520Part%25201%2520Presentation.odp"><i>Stored procedures</i></a> <span class="cs1-format">(ODP)</span>, O’Reilly</cite>.</span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/static/plpgsql.html">Official PL/pgSQL documentation</a></li></ul>
<p><br>
</p>
<style data-mw-deduplicate="TemplateStyles:r1271159938">
/* start https://en.wikipedia.org/ */
.mw-parser-output .asbox{position:relative;overflow:hidden}.mw-parser-output .asbox table{background:transparent}.mw-parser-output .asbox p{margin:0}.mw-parser-output .asbox p+p{margin-top:0.25em}.mw-parser-output .asbox-body{font-style:italic}.mw-parser-output .asbox-note{font-size:smaller}.mw-parser-output .asbox .navbar{position:absolute;top:-0.75em;right:1em;display:none}.mw-parser-output :not(p):not(.asbox)+style+.asbox,.mw-parser-output :not(p):not(.asbox)+link+.asbox{margin-top:3em}
/* end https://en.wikipedia.org/ */
</style></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-25" href="https://en.wikipedia.org/wiki/?title=PL%2FpgSQL&oldid=1302464137">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>